import log from '@dfeidao/atom-nodejs/logger/log';
import { IncomingHttpHeaders } from 'http';
import { systemid, productid } from '../../atom/config';
import query from '@dfeidao/atom-nodejs/db/query';
import count from '@dfeidao/atom-nodejs/db/count';


interface Message {
	filter: {
		page_no: number,
		risk_po_type_name: string,
		risk_po_type_no: string,
		//risk_po_name_no: string,
		risk_po_name: string,
		asc?: string[],
		desc?: string[]
	}
}
interface IWebResult {
	data: unknown;
	cookie?: {
		[name: string]: string;
	} | null;
	content_type?: string;
	headers?: {
		[key: string]: string;
	};
	attachment?: string;
	redirect?: string;
	status_code?: number;
}
// 表名	risk_point_type
// 标题	风险点类型
// 字段名称	字段标题	字段类型	字段长度	是否为空	是否主键
// _id	id	string	50	ⅹ	√
// risk_po_type_no	风险点类型编号	string	50	√	ⅹ
// risk_po_type_name	风险点类型名称	string	50	√	ⅹ
// risk_level	风险等级	string	32	√	ⅹ

// 表名	risk_point_name
// 标题	风险点名称
// 字段名称	字段标题	字段类型	字段长度	是否为空	是否主键
// _id	id	string	50	ⅹ	√
// risk_po_type_no	风险点类型编号	string	50	√	ⅹ
// risk_po_name_no	风险点名称编号	string	50	√	ⅹ
// risk_po_name	风险点名称	string	50	√	ⅹ
// 3.区域1中输入框用于输入需要搜索的“风险点类型名称”；
//      3.1根据“风险点类型名称”模糊查询输入的“风险点类型名称”取<风险点类型>表，得到“风险点类型名称”；

export default async function atom(message: Message, action_id: string, session_id: string, headers: IncomingHttpHeaders): Promise<IWebResult> {
	log('Service begin path:e:\Feidao\kh\src\risk-point\zj-000005\s001,action_id:' + action_id);
	//页面数据,搜索
	const { prepare, exec } = query(action_id, session_id, systemid);
	prepare('risk_point_name', ['risk_po_type_no', 'risk_po_name_no', 'risk_po_name'], { productid, risk_po_name: { $like: '%' + message.filter.risk_po_name + '%' } }, 5, message.filter.page_no, message.filter.asc || [], message.filter.desc || []);
	const [data] = await exec();
	//数据总量
	const { prepare: p, exec: e } = count(action_id, session_id, systemid);
	p('risk_point_name', { productid, risk_po_name: { $like: '%' + message.filter.risk_po_name + '%' } });
	const [n] = await e();
	log('Service end path:e:\Feidao\kh\src\risk-point\zj-000005\s001,action_id:' + action_id);

	return {
		data: { data, n }
	};
}
